{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 附录一：Python 文档以及说明"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "文档是对于编程语言或该编程语言所完成项目的注释和说明。良好的文档习惯有助于程序调用者了解程序，并且为日后继续维护和扩展打下基础。"
   ]
  },
  {
   "attachments": {
    "1531190164%281%29.png": {
     "image/png": "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"
    }
   },
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "![1531190164%281%29.png](attachment:1531190164%281%29.png)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Python 程序员可查看的文档资源。图片来源：Mark Lutz, Learning Python 5th Edition, p.p.444\n",
    "\n",
    "Python中往往使用dir()函数查看对象的属性（包括对象的变量、方法）。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## dir 函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']\n"
     ]
    }
   ],
   "source": [
    "import math\n",
    "\n",
    "# In python, dir() function is usually used to get attributes of an object. \n",
    "print(dir(math))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Python 中，单下划线开头的变量往往表示私有变量（或方法），双下划线变量一般表示解释器方法。一般在查看模块属性时，可以忽略这两种变量（或方法）。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']\n",
      "['api_version', 'argv', 'base_exec_prefix', 'base_prefix', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dllhandle', 'dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'get_asyncgen_hooks', 'get_coroutine_wrapper', 'getallocatedblocks', 'getcheckinterval', 'getdefaultencoding', 'getfilesystemencodeerrors', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'getswitchinterval', 'gettrace', 'getwindowsversion', 'hash_info', 'hexversion', 'implementation', 'int_info', 'intern', 'is_finalizing', 'last_traceback', 'last_type', 'last_value', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'ps3', 'set_asyncgen_hooks', 'set_coroutine_wrapper', 'setcheckinterval', 'setprofile', 'setrecursionlimit', 'setswitchinterval', 'settrace', 'stderr', 'stdin', 'stdout', 'thread_info', 'version', 'version_info', 'warnoptions', 'winver']\n"
     ]
    }
   ],
   "source": [
    "import sys, math\n",
    "\n",
    "print([x for x in dir(math) if not (x.startswith('_'))])\n",
    "print([x for x in dir(sys) if not (x.startswith('_'))])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "需要查看对象属性时，可以采用dir一个空对象的方式。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']\n",
      "['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']\n"
     ]
    }
   ],
   "source": [
    "# __contains__对应 in 关键字。\n",
    "print(dir([]))\n",
    "print(dir(()))\n",
    "# Same as:\n",
    "# print(dir([]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']\n",
      "['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']\n"
     ]
    }
   ],
   "source": [
    "print(dir(\"\"))\n",
    "# same thing: \n",
    "# print(dir(str))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']\n",
      "['__and__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__iand__', '__init__', '__init_subclass__', '__ior__', '__isub__', '__iter__', '__ixor__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__or__', '__rand__', '__reduce__', '__reduce_ex__', '__repr__', '__ror__', '__rsub__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__xor__', 'add', 'clear', 'copy', 'difference', 'difference_update', 'discard', 'intersection', 'intersection_update', 'isdisjoint', 'issubset', 'issuperset', 'pop', 'remove', 'symmetric_difference', 'symmetric_difference_update', 'union', 'update']\n"
     ]
    }
   ],
   "source": [
    "print(dir(dict))\n",
    "\n",
    "# Same as:\n",
    "# print(dir({}))\n",
    "\n",
    "# But different as:\n",
    "print(dir(set))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## help函数和？号"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在Jupyter notebook中，还可以在类、函数、方法或者对象后直接加上问号查看其属性，普通IDE中则可以通过help函数。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on built-in function random:\n",
      "\n",
      "random(...) method of random.Random instance\n",
      "    random() -> x in the interval [0, 1).\n",
      "\n"
     ]
    }
   ],
   "source": [
    "import random\n",
    "\n",
    "random.random?\n",
    "help(random.random)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Help on class str in module builtins:\n",
      "\n",
      "class str(object)\n",
      " |  str(object='') -> str\n",
      " |  str(bytes_or_buffer[, encoding[, errors]]) -> str\n",
      " |  \n",
      " |  Create a new string object from the given object. If encoding or\n",
      " |  errors is specified, then the object must expose a data buffer\n",
      " |  that will be decoded using the given encoding and error handler.\n",
      " |  Otherwise, returns the result of object.__str__() (if defined)\n",
      " |  or repr(object).\n",
      " |  encoding defaults to sys.getdefaultencoding().\n",
      " |  errors defaults to 'strict'.\n",
      " |  \n",
      " |  Methods defined here:\n",
      " |  \n",
      " |  __add__(self, value, /)\n",
      " |      Return self+value.\n",
      " |  \n",
      " |  __contains__(self, key, /)\n",
      " |      Return key in self.\n",
      " |  \n",
      " |  __eq__(self, value, /)\n",
      " |      Return self==value.\n",
      " |  \n",
      " |  __format__(...)\n",
      " |      S.__format__(format_spec) -> str\n",
      " |      \n",
      " |      Return a formatted version of S as described by format_spec.\n",
      " |  \n",
      " |  __ge__(self, value, /)\n",
      " |      Return self>=value.\n",
      " |  \n",
      " |  __getattribute__(self, name, /)\n",
      " |      Return getattr(self, name).\n",
      " |  \n",
      " |  __getitem__(self, key, /)\n",
      " |      Return self[key].\n",
      " |  \n",
      " |  __getnewargs__(...)\n",
      " |  \n",
      " |  __gt__(self, value, /)\n",
      " |      Return self>value.\n",
      " |  \n",
      " |  __hash__(self, /)\n",
      " |      Return hash(self).\n",
      " |  \n",
      " |  __iter__(self, /)\n",
      " |      Implement iter(self).\n",
      " |  \n",
      " |  __le__(self, value, /)\n",
      " |      Return self<=value.\n",
      " |  \n",
      " |  __len__(self, /)\n",
      " |      Return len(self).\n",
      " |  \n",
      " |  __lt__(self, value, /)\n",
      " |      Return self<value.\n",
      " |  \n",
      " |  __mod__(self, value, /)\n",
      " |      Return self%value.\n",
      " |  \n",
      " |  __mul__(self, value, /)\n",
      " |      Return self*value.n\n",
      " |  \n",
      " |  __ne__(self, value, /)\n",
      " |      Return self!=value.\n",
      " |  \n",
      " |  __new__(*args, **kwargs) from builtins.type\n",
      " |      Create and return a new object.  See help(type) for accurate signature.\n",
      " |  \n",
      " |  __repr__(self, /)\n",
      " |      Return repr(self).\n",
      " |  \n",
      " |  __rmod__(self, value, /)\n",
      " |      Return value%self.\n",
      " |  \n",
      " |  __rmul__(self, value, /)\n",
      " |      Return self*value.\n",
      " |  \n",
      " |  __sizeof__(...)\n",
      " |      S.__sizeof__() -> size of S in memory, in bytes\n",
      " |  \n",
      " |  __str__(self, /)\n",
      " |      Return str(self).\n",
      " |  \n",
      " |  capitalize(...)\n",
      " |      S.capitalize() -> str\n",
      " |      \n",
      " |      Return a capitalized version of S, i.e. make the first character\n",
      " |      have upper case and the rest lower case.\n",
      " |  \n",
      " |  casefold(...)\n",
      " |      S.casefold() -> str\n",
      " |      \n",
      " |      Return a version of S suitable for caseless comparisons.\n",
      " |  \n",
      " |  center(...)\n",
      " |      S.center(width[, fillchar]) -> str\n",
      " |      \n",
      " |      Return S centered in a string of length width. Padding is\n",
      " |      done using the specified fill character (default is a space)\n",
      " |  \n",
      " |  count(...)\n",
      " |      S.count(sub[, start[, end]]) -> int\n",
      " |      \n",
      " |      Return the number of non-overlapping occurrences of substring sub in\n",
      " |      string S[start:end].  Optional arguments start and end are\n",
      " |      interpreted as in slice notation.\n",
      " |  \n",
      " |  encode(...)\n",
      " |      S.encode(encoding='utf-8', errors='strict') -> bytes\n",
      " |      \n",
      " |      Encode S using the codec registered for encoding. Default encoding\n",
      " |      is 'utf-8'. errors may be given to set a different error\n",
      " |      handling scheme. Default is 'strict' meaning that encoding errors raise\n",
      " |      a UnicodeEncodeError. Other possible values are 'ignore', 'replace' and\n",
      " |      'xmlcharrefreplace' as well as any other name registered with\n",
      " |      codecs.register_error that can handle UnicodeEncodeErrors.\n",
      " |  \n",
      " |  endswith(...)\n",
      " |      S.endswith(suffix[, start[, end]]) -> bool\n",
      " |      \n",
      " |      Return True if S ends with the specified suffix, False otherwise.\n",
      " |      With optional start, test S beginning at that position.\n",
      " |      With optional end, stop comparing S at that position.\n",
      " |      suffix can also be a tuple of strings to try.\n",
      " |  \n",
      " |  expandtabs(...)\n",
      " |      S.expandtabs(tabsize=8) -> str\n",
      " |      \n",
      " |      Return a copy of S where all tab characters are expanded using spaces.\n",
      " |      If tabsize is not given, a tab size of 8 characters is assumed.\n",
      " |  \n",
      " |  find(...)\n",
      " |      S.find(sub[, start[, end]]) -> int\n",
      " |      \n",
      " |      Return the lowest index in S where substring sub is found,\n",
      " |      such that sub is contained within S[start:end].  Optional\n",
      " |      arguments start and end are interpreted as in slice notation.\n",
      " |      \n",
      " |      Return -1 on failure.\n",
      " |  \n",
      " |  format(...)\n",
      " |      S.format(*args, **kwargs) -> str\n",
      " |      \n",
      " |      Return a formatted version of S, using substitutions from args and kwargs.\n",
      " |      The substitutions are identified by braces ('{' and '}').\n",
      " |  \n",
      " |  format_map(...)\n",
      " |      S.format_map(mapping) -> str\n",
      " |      \n",
      " |      Return a formatted version of S, using substitutions from mapping.\n",
      " |      The substitutions are identified by braces ('{' and '}').\n",
      " |  \n",
      " |  index(...)\n",
      " |      S.index(sub[, start[, end]]) -> int\n",
      " |      \n",
      " |      Return the lowest index in S where substring sub is found, \n",
      " |      such that sub is contained within S[start:end].  Optional\n",
      " |      arguments start and end are interpreted as in slice notation.\n",
      " |      \n",
      " |      Raises ValueError when the substring is not found.\n",
      " |  \n",
      " |  isalnum(...)\n",
      " |      S.isalnum() -> bool\n",
      " |      \n",
      " |      Return True if all characters in S are alphanumeric\n",
      " |      and there is at least one character in S, False otherwise.\n",
      " |  \n",
      " |  isalpha(...)\n",
      " |      S.isalpha() -> bool\n",
      " |      \n",
      " |      Return True if all characters in S are alphabetic\n",
      " |      and there is at least one character in S, False otherwise.\n",
      " |  \n",
      " |  isdecimal(...)\n",
      " |      S.isdecimal() -> bool\n",
      " |      \n",
      " |      Return True if there are only decimal characters in S,\n",
      " |      False otherwise.\n",
      " |  \n",
      " |  isdigit(...)\n",
      " |      S.isdigit() -> bool\n",
      " |      \n",
      " |      Return True if all characters in S are digits\n",
      " |      and there is at least one character in S, False otherwise.\n",
      " |  \n",
      " |  isidentifier(...)\n",
      " |      S.isidentifier() -> bool\n",
      " |      \n",
      " |      Return True if S is a valid identifier according\n",
      " |      to the language definition.\n",
      " |      \n",
      " |      Use keyword.iskeyword() to test for reserved identifiers\n",
      " |      such as \"def\" and \"class\".\n",
      " |  \n",
      " |  islower(...)\n",
      " |      S.islower() -> bool\n",
      " |      \n",
      " |      Return True if all cased characters in S are lowercase and there is\n",
      " |      at least one cased character in S, False otherwise.\n",
      " |  \n",
      " |  isnumeric(...)\n",
      " |      S.isnumeric() -> bool\n",
      " |      \n",
      " |      Return True if there are only numeric characters in S,\n",
      " |      False otherwise.\n",
      " |  \n",
      " |  isprintable(...)\n",
      " |      S.isprintable() -> bool\n",
      " |      \n",
      " |      Return True if all characters in S are considered\n",
      " |      printable in repr() or S is empty, False otherwise.\n",
      " |  \n",
      " |  isspace(...)\n",
      " |      S.isspace() -> bool\n",
      " |      \n",
      " |      Return True if all characters in S are whitespace\n",
      " |      and there is at least one character in S, False otherwise.\n",
      " |  \n",
      " |  istitle(...)\n",
      " |      S.istitle() -> bool\n",
      " |      \n",
      " |      Return True if S is a titlecased string and there is at least one\n",
      " |      character in S, i.e. upper- and titlecase characters may only\n",
      " |      follow uncased characters and lowercase characters only cased ones.\n",
      " |      Return False otherwise.\n",
      " |  \n",
      " |  isupper(...)\n",
      " |      S.isupper() -> bool\n",
      " |      \n",
      " |      Return True if all cased characters in S are uppercase and there is\n",
      " |      at least one cased character in S, False otherwise.\n",
      " |  \n",
      " |  join(...)\n",
      " |      S.join(iterable) -> str\n",
      " |      \n",
      " |      Return a string which is the concatenation of the strings in the\n",
      " |      iterable.  The separator between elements is S.\n",
      " |  \n",
      " |  ljust(...)\n",
      " |      S.ljust(width[, fillchar]) -> str\n",
      " |      \n",
      " |      Return S left-justified in a Unicode string of length width. Padding is\n",
      " |      done using the specified fill character (default is a space).\n",
      " |  \n",
      " |  lower(...)\n",
      " |      S.lower() -> str\n",
      " |      \n",
      " |      Return a copy of the string S converted to lowercase.\n",
      " |  \n",
      " |  lstrip(...)\n",
      " |      S.lstrip([chars]) -> str\n",
      " |      \n",
      " |      Return a copy of the string S with leading whitespace removed.\n",
      " |      If chars is given and not None, remove characters in chars instead.\n",
      " |  \n",
      " |  partition(...)\n",
      " |      S.partition(sep) -> (head, sep, tail)\n",
      " |      \n",
      " |      Search for the separator sep in S, and return the part before it,\n",
      " |      the separator itself, and the part after it.  If the separator is not\n",
      " |      found, return S and two empty strings.\n",
      " |  \n",
      " |  replace(...)\n",
      " |      S.replace(old, new[, count]) -> str\n",
      " |      \n",
      " |      Return a copy of S with all occurrences of substring\n",
      " |      old replaced by new.  If the optional argument count is\n",
      " |      given, only the first count occurrences are replaced.\n",
      " |  \n",
      " |  rfind(...)\n",
      " |      S.rfind(sub[, start[, end]]) -> int\n",
      " |      \n",
      " |      Return the highest index in S where substring sub is found,\n",
      " |      such that sub is contained within S[start:end].  Optional\n",
      " |      arguments start and end are interpreted as in slice notation.\n",
      " |      \n",
      " |      Return -1 on failure.\n",
      " |  \n",
      " |  rindex(...)\n",
      " |      S.rindex(sub[, start[, end]]) -> int\n",
      " |      \n",
      " |      Return the highest index in S where substring sub is found,\n",
      " |      such that sub is contained within S[start:end].  Optional\n",
      " |      arguments start and end are interpreted as in slice notation.\n",
      " |      \n",
      " |      Raises ValueError when the substring is not found.\n",
      " |  \n",
      " |  rjust(...)\n",
      " |      S.rjust(width[, fillchar]) -> str\n",
      " |      \n",
      " |      Return S right-justified in a string of length width. Padding is\n",
      " |      done using the specified fill character (default is a space).\n",
      " |  \n",
      " |  rpartition(...)\n",
      " |      S.rpartition(sep) -> (head, sep, tail)\n",
      " |      \n",
      " |      Search for the separator sep in S, starting at the end of S, and return\n",
      " |      the part before it, the separator itself, and the part after it.  If the\n",
      " |      separator is not found, return two empty strings and S.\n",
      " |  \n",
      " |  rsplit(...)\n",
      " |      S.rsplit(sep=None, maxsplit=-1) -> list of strings\n",
      " |      \n",
      " |      Return a list of the words in S, using sep as the\n",
      " |      delimiter string, starting at the end of the string and\n",
      " |      working to the front.  If maxsplit is given, at most maxsplit\n",
      " |      splits are done. If sep is not specified, any whitespace string\n",
      " |      is a separator.\n",
      " |  \n",
      " |  rstrip(...)\n",
      " |      S.rstrip([chars]) -> str\n",
      " |      \n",
      " |      Return a copy of the string S with trailing whitespace removed.\n",
      " |      If chars is given and not None, remove characters in chars instead.\n",
      " |  \n",
      " |  split(...)\n",
      " |      S.split(sep=None, maxsplit=-1) -> list of strings\n",
      " |      \n",
      " |      Return a list of the words in S, using sep as the\n",
      " |      delimiter string.  If maxsplit is given, at most maxsplit\n",
      " |      splits are done. If sep is not specified or is None, any\n",
      " |      whitespace string is a separator and empty strings are\n",
      " |      removed from the result.\n",
      " |  \n",
      " |  splitlines(...)\n",
      " |      S.splitlines([keepends]) -> list of strings\n",
      " |      \n",
      " |      Return a list of the lines in S, breaking at line boundaries.\n",
      " |      Line breaks are not included in the resulting list unless keepends\n",
      " |      is given and true.\n",
      " |  \n",
      " |  startswith(...)\n",
      " |      S.startswith(prefix[, start[, end]]) -> bool\n",
      " |      \n",
      " |      Return True if S starts with the specified prefix, False otherwise.\n",
      " |      With optional start, test S beginning at that position.\n",
      " |      With optional end, stop comparing S at that position.\n",
      " |      prefix can also be a tuple of strings to try.\n",
      " |  \n",
      " |  strip(...)\n",
      " |      S.strip([chars]) -> str\n",
      " |      \n",
      " |      Return a copy of the string S with leading and trailing\n",
      " |      whitespace removed.\n",
      " |      If chars is given and not None, remove characters in chars instead.\n",
      " |  \n",
      " |  swapcase(...)\n",
      " |      S.swapcase() -> str\n",
      " |      \n",
      " |      Return a copy of S with uppercase characters converted to lowercase\n",
      " |      and vice versa.\n",
      " |  \n",
      " |  title(...)\n",
      " |      S.title() -> str\n",
      " |      \n",
      " |      Return a titlecased version of S, i.e. words start with title case\n",
      " |      characters, all remaining cased characters have lower case.\n",
      " |  \n",
      " |  translate(...)\n",
      " |      S.translate(table) -> str\n",
      " |      \n",
      " |      Return a copy of the string S in which each character has been mapped\n",
      " |      through the given translation table. The table must implement\n",
      " |      lookup/indexing via __getitem__, for instance a dictionary or list,\n",
      " |      mapping Unicode ordinals to Unicode ordinals, strings, or None. If\n",
      " |      this operation raises LookupError, the character is left untouched.\n",
      " |      Characters mapped to None are deleted.\n",
      " |  \n",
      " |  upper(...)\n",
      " |      S.upper() -> str\n",
      " |      \n",
      " |      Return a copy of S converted to uppercase.\n",
      " |  \n",
      " |  zfill(...)\n",
      " |      S.zfill(width) -> str\n",
      " |      \n",
      " |      Pad a numeric string S with zeros on the left, to fill a field\n",
      " |      of the specified width. The string S is never truncated.\n",
      " |  \n",
      " |  ----------------------------------------------------------------------\n",
      " |  Static methods defined here:\n",
      " |  \n",
      " |  maketrans(x, y=None, z=None, /)\n",
      " |      Return a translation table usable for str.translate().\n",
      " |      \n",
      " |      If there is only one argument, it must be a dictionary mapping Unicode\n",
      " |      ordinals (integers) or characters to Unicode ordinals, strings or None.\n",
      " |      Character keys will be then converted to ordinals.\n",
      " |      If there are two arguments, they must be strings of equal length, and\n",
      " |      in the resulting dictionary, each character in x will be mapped to the\n",
      " |      character at the same position in y. If there is a third argument, it\n",
      " |      must be a string, whose characters will be mapped to None in the result.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "help(str)\n",
    "\n",
    "# Same as:\n",
    "# help('')\n",
    "# In Py3.6"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## \\_\\_doc\\_\\_变量"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "通过调用模块、类、函数或方法的\\_\\_doc\\_\\_变量，也可以查看这些相应的帮助信息。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "This module provides access to some objects used or maintained by the\n",
      "interpreter and to functions that interact strongly with the interpreter.\n",
      "\n",
      "Dynamic objects:\n",
      "\n",
      "argv -- command line arguments; argv[0] is the script pathname if known\n",
      "path -- module search path; path[0] is the script directory, else ''\n",
      "modules -- dictionary of loaded modules\n",
      "\n",
      "displayhook -- called to show results in an interactive session\n",
      "excepthook -- called to handle any uncaught exception other than SystemExit\n",
      "  To customize printing in an interactive session or to install a custom\n",
      "  top-level exception handler, assign other functions to replace these.\n",
      "\n",
      "stdin -- standard input file object; used by input()\n",
      "stdout -- standard output file object; used by print()\n",
      "stderr -- standard error object; used for error messages\n",
      "  By assigning other file objects (or objects that behave like files)\n",
      "  to these, it is possible to redirect all of the interpreter's I/O.\n",
      "\n",
      "last_type -- type of last uncaught exception\n",
      "last_value -- value of last uncaught exception\n",
      "last_traceback -- traceback of last uncaught exception\n",
      "  These three are only available in an interactive session after a\n",
      "  traceback has been printed.\n",
      "\n",
      "Static objects:\n",
      "\n",
      "builtin_module_names -- tuple of module names built into this interpreter\n",
      "copyright -- copyright notice pertaining to this interpreter\n",
      "exec_prefix -- prefix used to find the machine-specific Python library\n",
      "executable -- absolute path of the executable binary of the Python interpreter\n",
      "float_info -- a struct sequence with information about the float implementation.\n",
      "float_repr_style -- string indicating the style of repr() output for floats\n",
      "hash_info -- a struct sequence with information about the hash algorithm.\n",
      "hexversion -- version information encoded as a single integer\n",
      "implementation -- Python implementation information.\n",
      "int_info -- a struct sequence with information about the int implementation.\n",
      "maxsize -- the largest supported length of containers.\n",
      "maxunicode -- the value of the largest Unicode code point\n",
      "platform -- platform identifier\n",
      "prefix -- prefix used to find the Python library\n",
      "thread_info -- a struct sequence with information about the thread implementation.\n",
      "version -- the version of this interpreter as a string\n",
      "version_info -- version information as a named tuple\n",
      "dllhandle -- [Windows only] integer handle of the Python DLL\n",
      "winver -- [Windows only] version number of the Python DLL\n",
      "_enablelegacywindowsfsencoding -- [Windows only] \n",
      "__stdin__ -- the original stdin; don't touch!\n",
      "__stdout__ -- the original stdout; don't touch!\n",
      "__stderr__ -- the original stderr; don't touch!\n",
      "__displayhook__ -- the original displayhook; don't touch!\n",
      "__excepthook__ -- the original excepthook; don't touch!\n",
      "\n",
      "Functions:\n",
      "\n",
      "displayhook() -- print an object to the screen, and save it in builtins._\n",
      "excepthook() -- print an exception and its traceback to sys.stderr\n",
      "exc_info() -- return thread-safe information about the current exception\n",
      "exit() -- exit the interpreter by raising SystemExit\n",
      "getdlopenflags() -- returns flags to be used for dlopen() calls\n",
      "getprofile() -- get the global profiling function\n",
      "getrefcount() -- return the reference count for an object (plus one :-)\n",
      "getrecursionlimit() -- return the max recursion depth for the interpreter\n",
      "getsizeof() -- return the size of an object in bytes\n",
      "gettrace() -- get the global debug tracing function\n",
      "setcheckinterval() -- control how often the interpreter checks for events\n",
      "setdlopenflags() -- set the flags to be used for dlopen() calls\n",
      "setprofile() -- set the global profiling function\n",
      "setrecursionlimit() -- set the max recursion depth for the interpreter\n",
      "settrace() -- set the global debug tracing function\n",
      "\n"
     ]
    }
   ],
   "source": [
    "import sys\n",
    "print(sys.__doc__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "int(x=0) -> integer\n",
      "int(x, base=10) -> integer\n",
      "\n",
      "Convert a number or string to an integer, or return 0 if no arguments\n",
      "are given.  If x is a number, return x.__int__().  For floating point\n",
      "numbers, this truncates towards zero.\n",
      "\n",
      "If x is not a number or if base is given, then x must be a string,\n",
      "bytes, or bytearray instance representing an integer literal in the\n",
      "given base.  The literal can be preceded by '+' or '-' and be surrounded\n",
      "by whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.\n",
      "Base 0 means to interpret the base from the string as an integer literal.\n",
      ">>> int('0b100', base=0)\n",
      "4\n",
      "map(func, *iterables) --> map object\n",
      "\n",
      "Make an iterator that computes the function using arguments from\n",
      "each of the iterables.  Stops when the shortest iterable is exhausted.\n"
     ]
    }
   ],
   "source": [
    "print(int.__doc__)\n",
    "print(map.__doc__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Created on Wed Jul 11 11:24:23 2018\n",
      "This is module level documentation,\n",
      "it should be written at the begining of the doc.\n",
      "@author: Sam\n",
      "\n"
     ]
    }
   ],
   "source": [
    "import Py_programs.Try_py_docs as py_docs\n",
    "\n",
    "# Model level documentation:\n",
    "print(py_docs.__doc__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "    A class level documentation\n",
      "    for setting up the class.\n",
      "    \n"
     ]
    }
   ],
   "source": [
    "print(py_docs.Hero.__doc__)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "        Plus sth. by 2,\n",
      "        this is functional level documentation.\n",
      "    \n"
     ]
    }
   ],
   "source": [
    "print(py_docs.plus_two.__doc__)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 其他资源查看"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "通过在终端输入命令：\n",
    "\"python -m pydoc -b\"，即可实现在本机浏览器环境下查看本机的python对象和变量。\n",
    "\n",
    "其他资源，比如sphinx\n",
    "http://www.sphinx-doc.org/en/master/\n",
    "能帮助用户创建良好的python项目文档。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 附录二： Python彩蛋"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "为增加编程乐趣，Python还设置了一些程序“彩蛋”可供调用把玩。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Python 哲学（Zen of Python）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The Zen of Python, by Tim Peters\n",
      "\n",
      "Beautiful is better than ugly.\n",
      "Explicit is better than implicit.\n",
      "Simple is better than complex.\n",
      "Complex is better than complicated.\n",
      "Flat is better than nested.\n",
      "Sparse is better than dense.\n",
      "Readability counts.\n",
      "Special cases aren't special enough to break the rules.\n",
      "Although practicality beats purity.\n",
      "Errors should never pass silently.\n",
      "Unless explicitly silenced.\n",
      "In the face of ambiguity, refuse the temptation to guess.\n",
      "There should be one-- and preferably only one --obvious way to do it.\n",
      "Although that way may not be obvious at first unless you're Dutch.\n",
      "Now is better than never.\n",
      "Although never is often better than *right* now.\n",
      "If the implementation is hard to explain, it's a bad idea.\n",
      "If the implementation is easy to explain, it may be a good idea.\n",
      "Namespaces are one honking great idea -- let's do more of those!\n"
     ]
    }
   ],
   "source": [
    "import this"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "dir(this)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print(this.c)\n",
    "print(this.d)\n",
    "print(this.i)\n",
    "print(this.s)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Python 连环画"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "import antigravity"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "dir(antigravity)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 附录三：软件开发术语简称、全称以及中英文对照"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## A"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- attribute，属性（通常可指类或模块的属性，包括其中的各类变量、函数、方法，对于模块来说还包括类）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## C"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- class，类（面向对象编程中对于实体对象的抽象，并以程序实现）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## F"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- Function，函数（一种从属于整个模块的可复用代码片段）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## I"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- IDE（Integrated Development Environment），集成开发环境"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## M"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- method，方法（一种从属于类的可复用代码片段）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## N"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- namespace，命名空间（一种高级编程语言（见于C#、C++等）的集成特性，一个命名空间内往往包含许多功能性的类。在Python中以模块的形式对应），Java中则以包的形式对应。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 其他开头"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 参考文献"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {
    "height": "422px",
    "left": "27px",
    "top": "67px",
    "width": "251px"
   },
   "toc_section_display": true,
   "toc_window_display": true
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
